Skip to content

[pull] main from TryGhost:main#926

Merged
pull[bot] merged 13 commits intocode:mainfrom
TryGhost:main
Feb 18, 2026
Merged

[pull] main from TryGhost:main#926
pull[bot] merged 13 commits intocode:mainfrom
TryGhost:main

Conversation

@pull
Copy link

@pull pull bot commented Feb 18, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

weylandswart and others added 13 commits February 18, 2026 10:38
ref https://linear.app/ghost/issue/BER-3333/port-members-list-from-ember-to-react

Ported our Members list from Ember to React. Currently on a different path and behind the membersForward flag. Includes filtering updates made on the Comments page.
#26465)

no issue

## Summary
- Refactored `completeStripeSubscription` to poll the Members API (`/members/api/member/`) until the member has `paid` status, replacing the unreliable `waitForLoadState('networkidle')` which returned before the Stripe webhook was processed
- Extracted `submitStripePayment` helper for non-subscription checkouts (donations) where the member won't become paid
- Removed hardcoded `{timeout: 30000}` from upgrade test assertions since the webhook is now confirmed processed before Portal is opened
no issue

- Updated the hardcoded Stripe test card expiry from `04 / 26` to `12 / 30` in browser test utils
- The old date (April 2026) is about to expire, which would cause Stripe to reject the test card and fail CI browser tests
ref
https://linear.app/ghost/issue/NY-971/post-ga-cleanup-remove-the-welcomeemails-labs-flag-from-admin

There should be no behavioral changes in this commit, since the
`welcomeEmails` flag has already been promoted to GA.

Now that welcome emails are in GA, we want to remove the flag
completely. This commit removes any conditional behavior in Ghost/core's
Stripe service that depends on the `welcomeEmails` flag.
ref
https://linear.app/ghost/issue/NY-971/post-ga-cleanup-remove-the-welcomeemails-labs-flag-from-admin

There should be no behavioral changes in this commit, since the
`welcomeEmails` flag has already been promoted to GA.

Now that welcome emails are in GA, we want to remove the flag
completely. This commit removes any conditional behavior in the
admin-x-settings app that depends on the `welcomeEmails` flag.
ref https://linear.app/ghost/issue/BER-3295

Adds `subscription.offer_redemptions` (sourced from offer_redemptions
table) to the member API response, and updates admin to display all
historical offers on the member page instead of only the current active
offer. This is to support retention offers where the system now has to
account for multiple offer redemptions potentially occurring on the same
sub
ref
https://linear.app/ghost/issue/NY-971/post-ga-cleanup-remove-the-welcomeemails-labs-flag-from-admin

There should be no behavioral changes in this commit, since the
`welcomeEmails` flag has already been promoted to GA.

Now that welcome emails are in GA, we want to remove the flag
completely. This commit removes any conditional behavior in Ghost/core's
Outbox processing job that depends on the `welcomeEmails` flag.
no ref

This change should have no user impact.

While I was working on something else, I noticed these classes which are
unused. Let's remove them.
…26449)

closes https://linear.app/ghost/issue/NY-1050

On iOS, we have four options for Inbox Links:

1. Don't show them at all.
2. Open the email inbox in the browser (a regular link).
3. Try to open the associated email app. If it's installed, great. If
it's not, nothing will happen. (Kind of a bad experience.)
4. Try to open the associated email app. If it's installed, great. If
the user taps it and nothing happens, wait 1 second and then do
something else. (Not a great option either for several reasons.)

Previously, we did option 2. Now we do option 1.
This test-only change should have no user impact.

This replaces the following Should.js assertions with `node:assert`:

- `.should.not.eql`
- `.should.matchAny`
- `.should.be.an.Object()`
This test-only change should have no user impact.
…26383)

ref https://linear.app/ghost/issue/BER-3295

The `offer_id` column previously persisted forever, even after the
Stripe discount expired. This changes the sync guard to only preserve
`offer_id` for active trials, and broadens the `OfferRedemptionEvent`
trigger to fire on any offer_id change (not just `null` → `new`),
enabling retention offer redemption tracking
@pull pull bot locked and limited conversation to collaborators Feb 18, 2026
@pull pull bot added the ⤵️ pull label Feb 18, 2026
@pull pull bot merged commit 554190c into code:main Feb 18, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

Comments